package ve.usb.cep.actions;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

import java.util.Map;
import ve.usb.cep.db.domainObjects.Usuario;
import ve.usb.cep.db.models.UsuarioModel;
import ve.usb.cep.db.modelExceptions.UsuarioException;
 
public class VerificarA extends ActionSupport {

    private String respuesta = "";
    protected Usuario u;
    private String attempt = "0";

    @Override
    public String execute()
        throws java.sql.SQLException,
               java.security.NoSuchAlgorithmException,
               java.io.UnsupportedEncodingException
    {

        if (!attempt.equals("1")){
            return "input";
        }

        Map session = ActionContext.getContext().getSession();
        session.put("usuario", u);
        
        return "success";
    }
    
    @Override
    public void validate() {

       if (!getAttempt().equals("1")){
           return;
       }

       if (getRespuesta().length() == 0) {
           addFieldError("respuesta", "Debe responder a la pregunta para recuperar su contraseña.");
           return;
       }
       
       Map session = ActionContext.getContext().getSession();
       u = (Usuario) session.get("usuario");
       
       if (!u.getRespuesta().equalsIgnoreCase(getRespuesta())) {
           addFieldError("respuesta", "La respuesta es incorrecta.");
           return;
       }
    }

    public String getRespuesta() {
        return this.respuesta;
    }
    public void setRespuesta(String respuesta) {
        this.respuesta = respuesta;
    }
    
    public String getAttempt() {
        return this.attempt;
    }
    public void setAttempt(String correo) {
        this.attempt = correo;
    }
}

